/** SortableHeaderRenderer.java * * Created On 2005, Nov 11, 2005 8:07:06 PM * * @author E. Rajasekar */ package app.astrosoft.ui.table; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.TableCellRenderer; import app.astrosoft.consts.AstrosoftTableColumn; public class SortableHeaderRenderer implements TableCellRenderer { private TableCellRenderer tableCellRenderer; public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) { this.tableCellRenderer = tableCellRenderer; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = tableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); SortableTableModel model = (SortableTableModel) table.getModel(); AstrosoftTableColumn modelColumn = model.getColumn(table .convertColumnIndexToModel(column)); SortInfo sortInfo = model.getSortInfo(); if (sortInfo != null && sortInfo.getSortBy() == modelColumn) { if (c instanceof JLabel) { JLabel l = (JLabel) c; l.setHorizontalTextPosition(JLabel.LEFT); l.setIcon(((SortableTable) table).getSortImageIcon()); return l; } } else { ((JLabel) c).setIcon(null); } return c; } }